/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sdc.utility;

import java.io.IOException;
import java.util.Properties;

/**
 * プロパティファイルから設定値を読み込むためのクラス．
 * @author yamazaki
 */
public class PropertyManager {

    /**
     * プロパティ設定
     */
    private final static Properties properties;

    /**
     * static初期化子によるプロパティファイルのロード．
     */
    static {
        properties = new Properties();
        try {
            properties.load(ClassLoader.getSystemResourceAsStream("parameters.properties"));
        } catch(IOException e) {
            //ファイルがなかったらExceptionを投げる．
            e.printStackTrace();
        }
    }

    /**
     * 指定のkeyに対応する設定項目をString型で得る．
     * @param key キー値
     * @return 設定項目
     */
    public static String getValueAsString(String key) {
        return properties.getProperty(key);
    }

    /**
     * 指定のkeyに対応する設定項目をinteger型で得る．
     * @param key キー値
     * @return 設定項目
     */
    public static int getValueAsInteger(String key) {
        return Integer.parseInt(properties.getProperty(key));
    }

    /**
     * 指定のkeyに対応する設定項目をlong型で得る．
     * @param key キー値
     * @return 設定項目
     */
    public static long getValueAsLong(String key) {
        return Long.parseLong(properties.getProperty(key));
    }

    /**
     * 指定のkeyに対応する設定項目をdouble型で得る．
     * @param key キー値
     * @return 設定項目
     */
    public static double getValueAsDouble(String key) {
        return Double.parseDouble(properties.getProperty(key));
    }

    /**
     * 指定のkeyに対応する設定項目をboolean型で得る．
     * @param key キー値
     * @return 設定項目
     */
    public static boolean getValueAsBoolean(String key) {
        return Boolean.parseBoolean(properties.getProperty(key));
    }

}
